// Layout serveur des pages de cours : validation du cours, vérification de // l'inscription, sous-navigation horizontale. import { notFound, redirect } from "next/navigation"; import { currentUser } from "@/lib/auth/session.ts"; import { get } from "@/lib/db/index.ts"; import { CourseNav } from "@/components/learning/course-nav"; export default async function CourseLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ course: string }>; }) { const { course } = await params; const slug = course.toLowerCase(); if (slug !== "imm1003" && slug !== "imm1033") notFound(); const code = slug.toUpperCase(); const user = await currentUser(); if (!user) redirect("/connexion"); const enrolled = get("SELECT 1 as ok FROM enrollments WHERE user_id = ? AND course_code = ?", user.id, code); if (!enrolled) redirect("/apprendre"); const row = get<{ title: string; color: string }>("SELECT title, color FROM courses WHERE code = ?", code); return (
{children}
); }